この関数は、1つ以上のレコードがttXlaNextUpdate関数またはttXlaNextUpdateWait関数によってログから読み取られたことを承認するために、永続モードで使用します。
この関数をコールすると、以前に返されたいずれのレコードも再読取りできないようにブックマークが再設定されます。このため、ttXlaAcknowledgeは、メッセージが完全に処理された場合にのみコールします。
注意: | ブックマークは、指定したハンドルに対してのみ再設定されます。システム内の他のハンドルは、以前のトランザクションにアクセス可能な場合があります。 |
ttXlaAcknowledgeは、頻繁に使用しないようにする必要がある高コストの処理です。ログ・ファイルを読み取るたびにttXlaAcknowledge を複数回コールした場合、ログのボリュームは減少しません。XLAではログ・ファイルが一度に1つのみパージされるためです。 ttXlaUpdateDesc_tヘッダーに返されたLSNのlogFile番号を使用すると、新しいログ・ファイルの生成を検出できます。その後、ttXlaAcknowledgeをコールして、古いログ・ファイルをパージできます。
ttXlaAcknowledgeの2番目の目的は、XLAREUSEオプションが指定されたttXlaPersistOpen関数をコールして、以前使用されたブックマークに接続する場合に確認されたレコードがXLAアプリケーションで認識されないようにすることです。ブックマークを再利用する場合、ttXlaCloseをコールする前にttXlaAcknowledgeをコールしてブックマークの位置を現在のレコードに再設定します。
この関数の使用方法については、「トランザクション・ログからの更新レコードの取得」を参照してください。
SQLRETURN ttXlaAcknowledge(ttXlaHandle_h handle)
コールが成功すると、SQL_SUCCESSが返されます。返されない場合は、ttXlaErrorを使用してエラーをレポートします。
rc = ttXlaAcknowledge(xlahandle);